// 此store.js文件为Vuex大仓库
// 1. 导入 Vue 和 Vuex
import Vue from 'vue';
import Vuex from 'vuex';

// 2. 将 Vuex 安装为 Vue 的插件
Vue.use(Vuex);

// 导入购物车的 vuex 模块
import moduleCart from './cart';
// 导入用户的 vuex 模块
import moduleUser from './user';

// 3. 创建 Store 的实例对象
const store = new Vuex.Store({
  // modules模块对象节点。挂载(注册) 小仓库 模块
  modules: {
    // 2. 挂载购物车的 vuex 模块，模块内成员的访问路径被调整为 m_cart，例如：
    //    购物车模块中 cart 数组的访问路径是 m_cart/cart
    //    moduleCart就是cart.js的命名空间，这里挂载时又调整为 m_cart
    //    m_cart模块所有的state 、mutations、actions、getters里面的东西调用时都需要加上命名空间
    'm_cart': moduleCart,
    // 挂载用户的 vuex 模块，访问路径为 m_user
    'm_user': moduleUser,
  }
});

// 4. 向外共享 Store 的实例对象
export default store;

// 5. 在 main.js 中导入 store 实例对象并挂载到 Vue 的实例上
